package com.zbkj.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.admin.model.user.UserBankAccount;
import com.zbkj.admin.request.UserBankAccountRequest;
import com.zbkj.admin.request.WechatAddressImportRequest;

import java.util.List;

/**
 * 用户银行卡账号 实现接口
 *
 * @author llc
 * @since 2025-04-23
 */
public interface UserBankAccountService extends IService<UserBankAccount> {

    /**
     * 添加用户银行卡账号
     *
     * @param request 银行卡账号请求参数
     * @return 银行卡账号ID
     */
    Integer create(UserBankAccountRequest request);

    /**
     * 用户银行卡账号编辑
     *
     * @param request 编辑请求参数
     * @return Boolean
     */
    Boolean edit(UserBankAccountRequest request);

    /**
     * 删除用户银行卡账号
     *
     * @param id 银行卡账号id
     * @return Boolean
     */
    Boolean delete(Integer id);

    /**
     * 获取默认银行卡账号
     */
    UserBankAccount getDefault();

    /**
     * 获取银行卡账号详情
     *
     * @param id 银行卡账号id
     * @return UserBankAccount
     */
    UserBankAccount getDetail(Integer id);

    /**
     * 获取所有的用户银行卡账号
     *
     * @return List
     */
    List<UserBankAccount> getAllList();

    /**
     * 设置默认银行卡账号
     *
     * @param id 银行卡账号id
     * @return Boolean
     */
    Boolean setDefault(Integer id);

    /**
     * 根据类型获取默认银行卡账号
     */
    UserBankAccount getDefaultByType(String type);
}
